/*
 * @Descripttion: Test for rapidjson
 * @Author: yubo
 * @Date: 2022-08-18 15:52:19
 * @LastEditTime: 2022-08-18 16:03:03
 */
#include <rapidjson/document.h>
#include <rapidjson/writer.h>
#include <rapidjson/stringbuffer.h>

#include <iostream>
#include <string>

using namespace rapidjson;

int main(int argc, char* argv[])
{
    // 1. 把 JSON 解析至 DOM。
    //const char* json = "{\"project\":\"rapidjson\",\"stars\":10}";
    std::string json = R"({"project":"rapidjson", "stars":10})";

    Document doc;
    doc.Parse(json.c_str());
 
    // 2. 利用 DOM 作出修改。
    Value& star = doc["stars"];
    star.SetInt(star.GetInt() + 1);
 
    // 3. 把 DOM 转换（stringify）成 JSON。
    StringBuffer buffer;
    Writer<StringBuffer> writer(buffer);
    doc.Accept(writer);
 
    // Output {"project":"rapidjson","stars":11}
    std::cout << buffer.GetString() << std::endl;

    return 0;
}